// 导入定义验证规则的模块
const joi = require('joi')
/**
* string() 值必须是字符串
* alphanum() 值只能是包含 a-zA-Z0-9 的字符串
* min(length) 最小长度
* max(length) 最大长度
* required() 值是必填项，不能为 undefined
* pattern(正则表达式) 值必须符合正则表达式的规则
*/
// 定义 标题、分类Id、内容、发布状态 的验证规则
const title = joi.string().required().error(new Error('标题名称不合法'))
const cate_id = joi.number().integer().min(1).required().error(new Error('文章分类不合法'))
const content = joi.string().required().allow('')
const state = joi.string().valid('已发布', '草稿').required().error(new Error('文章状态不合法'))
// 验证规则对象 - 发布文章
exports.add_article_schema = {
  body: {
    title,
    cate_id,
    content,
    state,
  },
}

// 定义 分类Id 的校验规则
const id = joi.number().integer().min(1).required().error(new Error('分类id不合法'))

// 校验规则对象 - 删除分类
exports.delete_article_schema = {
  params: {
    id,
  },
}

// 校验规则对象 - 根据 Id 获取分类
exports.get_article_schema = {
  params: {
    id,
  },
}

exports.edit_article_schema = {
  body: {
    id,
    title,
    cate_id,
    content,
    state,
  },
}